package Error::Hierarchy::Base;

use warnings;
use strict;


our $VERSION = '0.05';


use base qw(
    Error
    Data::Inherited
    Class::Accessor::Complex
);


__PACKAGE__->mk_new;  # so we don't get Error::new()


use overload
    '""'     => 'stringify',
    'cmp'    => sub { "$_[0]" cmp "$_[1]" },
    fallback => 1;


sub stringify {}


sub dump_raw {
    my $self = shift;
    require Data::Dumper;
    local $Data::Dumper::Indent = 1;
    Data::Dumper::Dumper($self);
}


sub dump_as_yaml {
    my $self = shift;
    require YAML;
    YAML::Dump($self);
}



1;


__END__

{% USE p = PodGenerated %}

=head1 NAME

Error::Hierarchy::Base - base class for hierarchical exception classes

=head1 SYNOPSIS

None.

=head1 DESCRIPTION

This class is internal, so you're not supposed to use it.

=head1 METHODS

=over 4

{% p.write_methods %}

=back

{% p.write_inheritance %}

{% PROCESS standard_pod %}

=cut

